package day0110.demo4;

class Computer {//所有的类直接或者间接继承Object类
    //1.成员变量(类的成员)
    String brand;//品牌
    String model;//型号
    double price;//价格

    //2.构造方法(特殊的方法)， 不能有返回值类型，方法名必须用class的名字
    //一个构造方法中，一定要调用父类的构造方法。如果没有用代码调用父类构造方法，则系统会自动调用父类的无参构造方法。
    //如果某个类，没有任何构造方法，则编译器会强制添加一个无参构造方法。
    //如果自己编写了构造方法则编译器不会会强制添加无参构造方法。
    //构造方法可以重载(名字相同，参数不同)。
    //构造方法之间可以用  this(参数值)  互相调用。  必须写在构造方法的第一行。
    //构造方法之间可以用  spuer(参数值)  调用父类的构造方法。  必须写在构造方法的第一行。

    //void Computer(){} //这个方法就不是构造方法
    Computer(){
        //super();
        this("","",0);//用另一个构造方法给成员变量赋值为空值
        this.brand="";  this.model="";  this.price=0;//用this.成员变量 给成员变量赋值为空值
        this.getAllStringMsg();//this调用成员方法
    }

    //名字相同，参数不同
    Computer(String brand,String model,double price){
        super();//调用父类Object的无参构造方法
        this.brand=brand;
        this.model=model;
        this.price=price;
    }

    //成员方法(类的成员)
    //3.获取电脑所有信息的方法getAllStringMsg()
    public String getAllStringMsg() {
        return brand +"," + model +"," +price;//返回值自己写
    }
    //3.玩游戏的方法
    public boolean playGame(int winTimes){
        if(winTimes>=2){
            return true;
        }else{
            return false;
        }
    }
}






class LenovoComputer extends  Computer{
    LenovoComputer(){}
    LenovoComputer(String brand,String model,double price){
        super();//调用父类Object的无参构造方法

        super.brand=brand;//调用父类的成员变量
        super.model=model;
        super.price=price;

        String rs=super.getAllStringMsg();//调用父类的成员方法
        System.out.println(rs);
    }
}





